home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 January: Mac OS SDK / Dev.CD Jan 97 SDK2.toast / Development Kits (Disc 2) / OpenDoc / OpenDoc Development / Debugging Support / OpenDoc™ Source Code / UI / WinIter.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  1996-08-28  |  4.1 KB  |  181 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        WinIter.cpp
  3.  
  4.     Contains:    SOM class ODWindowIterator
  5.  
  6.     Owned by:    Richard Rodseth
  7.  
  8.     Copyright:    © 1994 - 1995 by Apple Computer, Inc., all rights reserved.
  9.  
  10.     Change History (most recent first):
  11.  
  12.          <7>     10/8/95    TJ        Fixes Recomended by Refball
  13.          <6>      8/3/95    RR        #1257260: Collapse B classes. Remove
  14.                                     somInit methods. Don't call IsInitialized
  15.                                     or SubclassResponsibility
  16.          <5>     6/22/95    RR        #1245283 Undoable frame deletion
  17.                                     #1209427 Changed private api between
  18.                                     iterator and iteratee
  19.          <4>     5/26/95    RR        #1251403: Multithreading naming support
  20.          <3>     5/25/95    jpa        List.h --> LinkList.h [1253324]
  21.          <2>     4/13/95    RR        # 1216618 Added SOM_TRY
  22.          <1>     6/23/94    RR        first checked in
  23.  
  24.     To Do:
  25.     In Progress:
  26. */
  27.  
  28.  
  29. /*
  30.  *  This file was generated by the SOM Compiler.
  31.  *  Generated using: 
  32.  *      SOM Emitter emitxtm.dll: somc/smmain.c
  33.  */
  34.  
  35. #define ODWindowIterator_Class_Source
  36. #define VARIABLE_MACROS
  37. #include <WinIter.xih>
  38.  
  39. #ifndef SOM_ODWindowState_xh
  40. #include "WinStat.xh"
  41. #endif
  42.  
  43. #ifndef _EXCEPT_
  44. #include "Except.h"
  45. #endif
  46.  
  47. #ifndef _LINKLIST_
  48. #include <LinkList.h>
  49. #endif
  50.  
  51. #ifndef _WINUTILM_
  52. #include "WinUtilM.h" 
  53. #endif
  54.  
  55. SOM_Scope void  SOMLINK ODWindowIteratorInitWindowIterator(ODWindowIterator *somSelf, Environment *ev,
  56.         ODWindowState* windowState)
  57. {
  58.     ODWindowIteratorData *somThis = ODWindowIteratorGetData(somSelf);
  59.     ODWindowIteratorMethodDebug("ODWindowIterator","ODWindowIteratorInitWindowIterator");
  60.  
  61.     LinkedListIterator* iter = kODNULL; ODVolatile(iter);
  62.     
  63.     SOM_TRY
  64.     
  65.     /* Moved from somInit. SOM itself sets fields to zero
  66.     _fWindowState = kODNULL;
  67.     _fIteratorID = 0;
  68.     */
  69.     
  70.     somSelf->InitObject(ev);
  71.  
  72.     _fWindowState = windowState;
  73.     if (_fWindowState)
  74.         _fIteratorID = _fWindowState->AddIterator(ev, somSelf);
  75.                 
  76.     SOM_CATCH_ALL        
  77.     SOM_ENDTRY
  78. }
  79.  
  80. SOM_Scope ODWindow*  SOMLINK ODWindowIteratorFirst(ODWindowIterator *somSelf, Environment *ev)
  81. {
  82.     ODWindowIteratorData *somThis = ODWindowIteratorGetData(somSelf);
  83.     ODWindowIteratorMethodDebug("ODWindowIterator","ODWindowIteratorFirst");
  84.  
  85.     ODWindow* window = kODNULL;
  86.     
  87.     SOM_TRY
  88.  
  89.         window = _fWindowState->First(ev, _fIteratorID);
  90.     
  91.     SOM_CATCH_ALL
  92.     SOM_ENDTRY
  93.     
  94.     return window;
  95.  
  96. }
  97.  
  98. SOM_Scope ODWindow*  SOMLINK ODWindowIteratorNext(ODWindowIterator *somSelf, Environment *ev)
  99. {
  100.     ODWindowIteratorData *somThis = ODWindowIteratorGetData(somSelf);
  101.     ODWindowIteratorMethodDebug("ODWindowIterator","ODWindowIteratorNext");
  102.  
  103.     ODWindow* window = kODNULL;
  104.     
  105.     SOM_TRY
  106.  
  107.         window = _fWindowState->Next(ev, _fIteratorID);
  108.     
  109.     SOM_CATCH_ALL
  110.     SOM_ENDTRY
  111.     
  112.     return window;
  113. }
  114.  
  115. SOM_Scope ODWindow*  SOMLINK ODWindowIteratorLast(ODWindowIterator *somSelf, Environment *ev)
  116. {
  117.     ODWindowIteratorData *somThis = ODWindowIteratorGetData(somSelf);
  118.     ODWindowIteratorMethodDebug("ODWindowIterator","ODWindowIteratorLast");
  119.  
  120.     ODWindow* window = kODNULL;
  121.     
  122.     SOM_TRY
  123.  
  124.         window = _fWindowState->Last(ev, _fIteratorID);
  125.     
  126.     SOM_CATCH_ALL
  127.     SOM_ENDTRY
  128.     
  129.     return window;
  130. }
  131.  
  132. SOM_Scope ODWindow*  SOMLINK ODWindowIteratorPrevious(ODWindowIterator *somSelf, Environment *ev)
  133. {
  134.     ODWindowIteratorData *somThis = ODWindowIteratorGetData(somSelf);
  135.     ODWindowIteratorMethodDebug("ODWindowIterator","ODWindowIteratorPrevious");
  136.  
  137.     ODWindow* window = kODNULL;
  138.     
  139.     SOM_TRY
  140.  
  141.         window = _fWindowState->Previous(ev, _fIteratorID);
  142.     
  143.     SOM_CATCH_ALL
  144.     SOM_ENDTRY
  145.     
  146.     return window;
  147. }
  148.  
  149. SOM_Scope ODBoolean  SOMLINK ODWindowIteratorIsNotComplete(ODWindowIterator *somSelf, Environment *ev)
  150. {
  151.     ODWindowIteratorData *somThis = ODWindowIteratorGetData(somSelf);
  152.     ODWindowIteratorMethodDebug("ODWindowIterator","ODWindowIteratorIsNotComplete");
  153.  
  154.     ODBoolean isNotComplete = kODFalse;
  155.     
  156.     SOM_TRY
  157.  
  158.         isNotComplete = _fWindowState->IsNotComplete(ev, _fIteratorID);
  159.     
  160.     SOM_CATCH_ALL
  161.     SOM_ENDTRY
  162.  
  163.     return isNotComplete;
  164. }
  165.  
  166. SOM_Scope void  SOMLINK ODWindowIteratorsomUninit(ODWindowIterator *somSelf)
  167. {
  168.     ODWindowIteratorData *somThis = ODWindowIteratorGetData(somSelf);
  169.     ODWindowIteratorMethodDebug("ODWindowIterator","ODWindowIteratorsomUninit");
  170.  
  171.     TRY{
  172.         _fWindowState->RemoveIterator(somGetGlobalEnvironment(), _fIteratorID);
  173.     }CATCH_ALL{
  174.         // Ignore any exception
  175.     }ENDTRY
  176.     
  177.     _fWindowState = kODNULL;
  178.     _fIteratorID = 0;
  179.     parent_somUninit(somSelf);
  180. }
  181.